import 'package:shared_preferences/shared_preferences.dart';

/// 应用内数据缓存处理
/// @author SouShin
/// @time 2021/8/10 10:22
class AppData {
  static SharedPreferences? prefs;

  /// 用户名
  static const String KEY_USERNAME = "key_username";

  /// 密码
  static const String KEY_PASSWORD = "key_password";

  /// 用户类型
  static const String KEY_USER_TYPE = "key_user_type";

  /// 用户类型id
  static const String KEY_USER_TYPE_ID = "key_user_type_id";

  /// 用户类型名称
  static const String KEY_USER_TYPE_NAME = "key_user_type_name";

  static Future<bool> initData() async {
    prefs = await SharedPreferences.getInstance();
    print("初始化完成${new DateTime.now().toString()} ${prefs != null}");
    return Future.value(prefs != null);
  }

  /// 设置用户名
  /// * [username] 用户名
  static void setUsername(String username) async {
    prefs?.setString(KEY_USERNAME, username);
  }

  /// 获取用户名
  static String? getUsername() {
    return prefs?.getString(KEY_USERNAME) ?? "chentao";
  }

  /// 设置密码
  /// * [password] 密码
  static void setPassword(String password) async {
    prefs?.setString(KEY_PASSWORD, password);
  }

  /// 获取密码
  static String? getPassword() {
    return prefs?.getString(KEY_PASSWORD) ?? "Chentao@123";
  }

  /// 设置用户类型
  static void setUserType(int userType) async {
    prefs?.setInt(KEY_USER_TYPE, userType);
  }

  /// 获取用户类型
  static int getUserType() {
    return prefs?.getInt(KEY_USER_TYPE) ?? 1;
  }

  /// 设置用户类型id
  static void setUserTypeId(String userTypeId) async {
    prefs?.setString(KEY_USER_TYPE_ID, userTypeId);
  }

  /// 获取用户类型id
  static String? getUserTypeId() {
    return prefs?.getString(KEY_USER_TYPE_ID) ?? "";
  }

  /// 设置用户类型名称
  static void setUserTypeName(String userTypeName) async {
    prefs?.setString(KEY_USER_TYPE_NAME, userTypeName);
  }

  /// 获取用户类型名称
  static String? getUserTypeName() {
    return prefs?.getString(KEY_USER_TYPE_NAME) ?? "";
  }

  static void saveLocaleIndex(int index) async {
    prefs?.setInt("locale_index", index);
  }

  static int queryLocaleIndex() {
    return prefs?.getInt("locale_index") == null ? 1 : prefs!.getInt("locale_index")!;
  }
}
